#ifndef WORLD_H
#define WORLD_H

#include "framework.h"
#include "TextureManager.h"
#include "MeshManager.h"
#include "Plane.h"
#include "EntityCamera.h"
#include "EntityMesh.h"
#include "includes.h"
#include "Controller.h"
#include <list>
#include "BulletManager.h"
#include "Ia.h"
#include "Particle.h"
#include "Minimap.h"
#include "Explosion.h"
#include "Crosshair.h"

class World : public Entity
{
private:
	World(void);
	~World(void);
	std::list<Entity*> toDelete;
	BulletManager* bullet_manager;

public:
	static World* instance; 
	TextureManager* tex_manager;
	MeshManager* mesh_manager;
	Controller* player;
	EntityCamera* activeCam;
	Plane* enemy;
	Ia* intelligence;
	Minimap* minimap;
	Explosion* boom;
	EntityMesh* pos;
	Crosshair* crosshair;

	//void init();
	void render();
	void update(float dt);
	void deleteEntity(Entity* ent);

	static World* getInstance();
};

#endif